package com.shop.mapper;

import com.google.protobuf.Internal;
import com.shop.entity.Product;
import com.shop.vo.ProductAggregationVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author XCH
 * @date 2025 - 05 - 19
 */
@Mapper
public interface ProductMapper {
    /**
     * 商品列表
     * @param pageNum
     * @param pageSize
     * @return
     */
    List<Product> listProduct(@Param("pageNum")int pageNum, @Param("pageSize") int pageSize);

    List<ProductAggregationVO> listProductAggregation(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize);

    List<ProductAggregationVO> listAllProduct();

    List<Product> listProductCategoryMappings(@Param("pageNum")int pageNum, @Param("pageSize") int pageSize);

    ProductAggregationVO getProductById(@Param("id") Integer id);
    /**
     * 添加商品
     * @param product
     */
    Integer addProduct(Product product);
    /**
     * 删除商品
     * @param id
     */
    void deleteProduct(Integer id);
    /**
     * 修改商品
     * @param product
     */
    void updateProduct(Product product);

    int getTotal();
}
